获取开发密钥(AK)
登录百度账号
进入API控制台
点击“创建应用”开始申请开发密钥
填写应用名称,注意应用类型选择“Android SDK”、正确填写SHA1 和 程序包名
Android Studio配置
在项目中集成BaiduMap SDK,下载开发包
开发包拷贝至工程,添加jar文件,打开解压后的开发包文件夹,将其拷贝至工程的app/libs目录下
在app目录下的build.gradle文件中android块中配置sourceSets标签,如果没有使用该标签则新增,详细配置代码如下:
1
2
3
4
5sourceSets {
main {
jniLibs.srcDir 'libs'
}
}
注意:Jar文件和so文件的版本号必须一致,并且保证Jar文件与so文件是同一版本包取出的。
- 往工程中添加jar文件,在libs目录下,选中
BaiduLbs_Android.jar
右键,选择Add As Library
显示地图
配置AndroidManifest.xml文件
在
中加入开发密钥(AK) 1
2
3
4
5<application>
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="0GLoGxs9hOhfMgxee9XvGggBn0TR7CSO" />
</application>在
外部添加如下权限声明 1
2
3
4
5
6
7
8
9<!-- 访问网络,进行地图相关业务数据请求,包括地图数据,路线规划,POI检索等 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 获取网络状态,根据网络状态切换进行数据请求网络转换 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- 读取外置存储。如果开发者使用了so动态加载功能并且把so文件放在了外置存储区域,则需要申请该权限,否则不需要 -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<!-- 写外置存储。如果开发者使用了离线地图,并且数据写在外置存储区域,则需要申请该权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
在布局文件中添加地图容器
1
2
3
4
5<com.baidu.mapapi.map.MapView
android:id="@+id/bmapView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true" />地图初始化
新建一个自定义的
DemoApplication
(继承Application
类),在其onCreate方法中完成SDK的初始化。在
AndroidManifest.xml
文件中声明该Application
1
android:name="DemoApplication">
在
MainActivity.java
的onCreate
函数中获取地图控件引用1
2mMapView = findViewById(R.id.bmapView);
mBaiduMap = mMapView.getMap();在
MainActivity.java
中添加管理MapView
生命周期函数代码
切换地图
在
activity_main.xml
中添加RadioGroup
,在RadioGroup
内添加三个RadioButton
和一个Button
设置宽高参数并添加点击事件给
Radio
组在
MainActivity.java
中添加Radio
组点击事件的处理函数
- 在
MainActivity.java
中添加Button
的点击事件的处理函数,清除地图缓存数据,支持清除普通地图和卫星图缓存,再次进入地图页面生效。
在
MainActivity.java
的onCreate
函数中构建地图状态,实例化经纬度center
和缩放等级zoom
对象1
2
3
4
5MapStatus.Builder builder = new MapStatus.Builder();
LatLng center = new LatLng(34.368774, 107.882718);
float zoom = 11.0f;将
zoom
赋值给center
的zoom
属性,将center
赋值给builder
的target
属性,通过地图状态对象(builder
)实例化地图状态更新对象1
2
3
4
5builder.target(center).zoom(zoom);
MapStatusUpdate mapStatusUpdate = MapStatusUpdateFactory.newMapStatus(builder.build());
mBaiduMap.setMapStatus(mapStatusUpdate);
7. 运行查看效果
原文链接: http://enofeng.github.io/2021/07/22/android+baidu sdk 显示地图+切换地图/
版权声明: 转载请注明出处.